// 用户模型
const { DataTypes } = require('sequelize');
// 数据库实例
const sequelize = require('@/config/db');

const User = require('./user.models')
const Role = require('./role.models')

/**
 * 用户角色关联表
 */
const UserRole = sequelize.define('UserRole', {
  userId: {
    type: DataTypes.INTEGER,
    references: {
      model: User,
      key: 'id'
    }
  },
  roleId: {
    type: DataTypes.INTEGER,
    references: {
      model: Role,
      key: 'id'
    }
  }
}, {
  // 其他模型选项
  timestamps: true, // 自动管理创建时间和更新时间
  // paranoid: true,   // 启用软删除支持
  tableName: 'user_role' // 表名
});

User.belongsToMany(Role, { through: UserRole, foreignKey: 'userId' });
Role.belongsToMany(User, { through: UserRole, foreignKey: 'roleId' });

module.exports = UserRole